package robocup.component.infotypes;

/**
 * This class represents an info which is received initially from the server.
 * The contained information is the player-specific configuration of the server.
 */
public class PlayerParamInfo
    extends Info {

  /**
   * The value by which the dash-power rate might be higher than usual (default
   * 0.0).
   */
  public double DASH_POWER_RATE_DELTA_MAX        = 0.0;

  /**
   * The value by which the dash-power rate might be lower than usual (default
   * 0.0).
   */
  public double DASH_POWER_RATE_DELTA_MIN        = 0.0;

  /**
   * The maximum dash-power rate (default 0.008).
   */
  public double DASH_POWER_RATE_MAX              = 0.008;

  /**
   * The minimum dash-power rate (default 0.006).
   */
  public double DASH_POWER_RATE_MIN              = 0.006;

  /**
   * The maximum value for increased effort (default -0.002).
   */
  public double EFFORT_MAX_DELTA_FACTOR          = -0.002;

  /**
   * The minimum value for increased effort (default -0.002).
   */
  public double EFFORT_MIN_DELTA_FACTOR          = -0.002;

  /**
   * The maximum extra stamina (default 100.0)
   */
  public double EXTRA_STAMINA_DELTA_MAX          = 100.0;

  /**
   * The minimum extra stamina (default 0)
   */
  public double EXTRA_STAMINA_DELTA_MIN          = 0.0;

  /**
   * The inertia moment deviation factor (default 25.0)
   */
  public double INERTIA_MOMENT_DELTA_FACTOR      = 25.0;

  /**
   * The random factor for kicking (default 0.5)
   */
  public double KICK_RAND_DELTA_FACTOR           = 0.5;

  /**
   * The maximum deviation for the kickable margin (default 0.2).
   */
  public double KICKABLE_MARGIN_DELTA_MAX        = 0.2;

  /**
   * The minimum deviation for the kickable margin (default 0.2).
   */
  public double KICKABLE_MARGIN_DELTA_MIN        = 0.0;

  /**
   * The maximum kickable margin (default 0.9)
   */
  public double KICKABLE_MARGIN_MAX              = 0.9;

  /**
   * The minimum kickable margin (default 0.7)
   */
  public double KICKABLE_MARGIN_MIN              = 0.7;

  /**
   * (default 0.002)
   */
  public double NEW_DASH_POWER_RATE_DELTA_MAX    = 0.002;

  /**
   * (default 0.0)
   */
  public double NEW_DASH_POWER_RATE_DELTA_MIN    = 0.0;

  /**
   * <i>unknwon</i>
   */
  public double NEW_STAMINA_INC_MAX_DELTA_FACTOR = -10000.0;

  /**
   * The player decay maximum deviation (default 0.2)
   */
  public double PLAYER_DECAY_DELTA_MAX           = 0.2;

  /**
   * The player decay minimum deviation (default 0)
   */
  public double PLAYER_DECAY_DELTA_MIN           = 0.0;

  /**
   * The player-size deviation (default <i>unknown</i>)
   */
  public double PLAYER_SIZE_DELTA_FACTOR         = -100.0;

  /**
   * The player speed maximum deviation (default 0)
   */
  public double PLAYER_SPEED_MAX_DELTA_MAX       = 0.0;

  /**
   * The player speed minimum deviation (default 0)
   */
  public double PLAYER_SPEED_MAX_DELTA_MIN       = 0.0;

  /**
   * The amount of heterogeneous player types (default 7)
   */
  public int    PLAYER_TYPES                     = 7;

  /**
   * The amount of players, that can be assigned to the same player-type
   * (default 3)
   */
  public int    PT_MAX                           = 3;

  /**
   * Random ssed for heterogeneous player type determination (default <i>unknown</i>).
   */
  public double RANDOM_SEED                      = -1;

  /**
   * The deviation for stamina increasement (default 0)
   */
  public double STAMINA_INC_MAX_DELTA_FACTOR     = 0.0;

  /**
   * The maximum allowed player substitutions.
   */
  public int    SUBS_MAX                         = 3;

  /**
   * Constructor, simply specifies the type. All data is set via the public
   * fields of the object.
   */
  public PlayerParamInfo() {

    super(-1);
    this.infoType = Info.TYPE_PPARAM;
  }

}
